#include <string>
#include "vector.h"
#include "node.h"

namespace AST {

    // Construtor Padrão
    Vector::Vector(Node* identifier, Node* offset) {
        // Configuração
        this->_setIdentifier(identifier)->_setOffset(offset);
    };

    // Configuração do Identificador
    Vector* Vector::_setIdentifier(Node* identifier) {
        // Configuração
        this->_identifier = identifier;
        // Encadeamento
        return this;
    };

    // Configuração de Deslocamento
    Vector* Vector::_setOffset(Node* offset) {
        // Configuração
        this->_offset = offset;
        // Encadeamento
        return this;
    };

    // Apresentação do Identificador
    Node* Vector::getIdentifier() {
        // Apresentação
        return this->_identifier;
    };

    // Apresentação de Deslocamento
    Node* Vector::getOffset() {
        // Apresentação
        return this->_offset;
    };

    // Sobrescrita
    std::string Vector::toString(int indent) {
        // Apresentação
        return this->getIndentSpaces(indent)
            + "Vector\n"
            + this->getIdentifier()->toString(indent + 1) + "\n"
            + this->getOffset()->toString(indent + 1);
    };

};

